Methods, apparatus, and systems to repair memory

ABSTRACT

Methods, apparatus and systems pertain to performing READ, WRITE functions in a memory which is coupled to a repair controller. One such repair controller could receive a row address and a column address associated with the memory and store a first plurality of tag fields indicating a type of row/column repair to be performed for at least a portion of a row/column of memory cells, and a second plurality of tag fields to indicate a location of memory cells used to perform the row/column repair.

PRIORITY APPLICATION

This application is a continuation of U.S. application Ser. No.13/332,553, filed Dec. 21, 2011, which is a continuation of U.S.application Ser. No. 12/209,060, filed Sep. 11, 2008, now issued as U.S.Pat. No. 8,086,913, all of which are incorporated herein by reference intheir entirety.

BACKGROUND

Semiconductor memory devices, including Dynamic Random Access Memories(DRAMs), Static Random Access Memories (SRAMs), Electrically ErasableProgrammable Read Only Memories (EEPROMs), and the like typicallyinclude an array of memory cells. The array of memory cells are arrangedin rows and columns and store information in at least two states, forexample, a logic high state (a logic “1” state) or a logic low state (alogic “0” state). To access this state information, a unique address isemployed. The address is based on row/column locations and is decoded byaddress decode circuitry, which identifies the particular row and columnof the memory array.

In manufacturing such memories, it is found that some of the memorycells can be defective. To repair these defective memory cells, memorydevices provide redundant blocks of memory cells that can be used toreplace, for example, an entire row of memory cells in which thedefective cells are located. Often, only a minority of memory cells in arow are found to be defective. There is a need in the art for anefficient way of repairing memory cells.

BRIEF DESCRIPTION OF THE DRAWINGS

Various embodiments of the present invention are described in detailbelow with reference to the following drawings.

FIG. 1 is a schematic representation of a system for repairing a primarymemory using a repair controller having a tag random access memory (RAM)and an auxiliary redundant data RAM, in accordance with some embodimentsof the invention.

FIG. 2 is a schematic representation of a system for repairing a primarymemory using a repair controller, in accordance with some embodiments ofthe invention.

FIG. 3 is a flow chart of a method of repairing a primary memory duringa READ operation using the system shown in FIG. 1, according to someembodiments of the invention.

FIG. 4 is a flow chart of a method of repairing a primary memory duringa WRITE operation using the system shown in FIG. 1, according to someembodiments of the invention.

FIG. 5 is a flow chart of a method of repairing a primary memory duringa READ/WRITE operation using the system shown in FIG. 2, according tosome embodiments of the invention.

DETAILED DESCRIPTION

FIG. 1 is a schematic representation of a system 100 for repairing aprimary memory using a repair controller, according to some embodimentsof the invention. System 100 includes a memory controller 110, a primarymemory 120, and a repair controller 130. In some embodiments, memorycontroller 110 is communicatively coupled to the primary memory 120 andthe repair controller 130. In some embodiments, repair controller 130and primary memory 120 reside within the same integrated circuit (IC)package. In some embodiments, repair controller 130 and primary memory120 are located in the same package and in some other examples, they maybe located in separate packages or dice. In some embodiments, the memorycontroller 110 may reside on the same die as primary memory 120. In someembodiments, the memory controller 110 may reside on the same die as therepair controller 130.

In some embodiments, when row repairs are performed in the primarymemory 120, memory controller 110 provides row addresses and columnaddresses to repair controller 130 using links (or buses) 132 and 134,respectively. In some embodiments, the row addresses and the columnaddresses are transported over the same physical bus. In someembodiments, the row/column addresses are transported using multiplexedrow/column addressing. In some embodiments, when column repairs areperformed in the primary memory 120, memory controller 110 providescolumn addresses and row addresses to the repair controller 130 usinglinks 132 and 134, respectively. Memory controller 110 receives readdata using data bus 111 and sends write data using data bus 112.

Primary memory 120 includes a standard memory block 122 havingrows/columns of memory cells, and a redundant memory block 124 havingrows/columns of memory cells. The memory cells in the redundant memoryblock 124 can be used to repair defective cells within the standardmemory block 122 that have been identified as being defective at thetime of manufacturing of the primary memory 120. In various embodiments,primary memory 120 includes a stack of one or more DRAM arrays, whereineach DRAM array includes a standard block of memory cells and aredundant block of memory cells. In various embodiments, primary memory120 includes a stack of one or more SRAM arrays, wherein each SRAM arrayincludes a standard block of memory cells and a redundant block ofmemory cells. In some embodiments, the DRAM and SRAM arrays may includeone or more blocks of standard memory cells and one or more blocks ofredundant memory cells. In various embodiments, primary memory 120includes a stack of one or more non-volatile arrays, wherein eachnon-volatile array includes a standard block of memory cells and aredundant block of memory cells. In some embodiments, the non-volatilememory is a flash memory. In some embodiments, primary memory 120 caninclude a combination of the different types of memory arrays mentionedabove (for example, DRAM, SRAM, non-volatile, flash, etc.).

In some embodiments, repair controller 130 includes a tag RAM 140, anauxiliary data RAM 150, an address comparator 160 and a selector 170,which includes a Data Mux. In some embodiments, auxiliary data RAM 150provides additional memory cells that can be used to repair defectivememory cells of primary memory 120. In various examples, defectivememory cells include cells that are actually defective and cells thathave been deemed defective regardless whether they are actuallydefective. In some embodiments, tag RAM 140 includes repair tags 145having repair tag fields 141-143 and redundant memory cell locationfield 144.

Table 1 shows an example of repair tag fields 141-143 that can be usedfor performing row/column repair. Repair tag fields 141-143 are used tostore, for example, status information indicating whether a row repairis needed for a particular incoming row address. Additionally, if a rowrepair is desired then the repair tag fields can provide information onthe type of repair required for each row address received from memorycontroller 110. In some embodiments, a repair tag field 141 (which is anoptional field) includes a row repair indicator. In some embodiments,repair tag field 142 includes a redundant row locator. In someembodiments, repair tag field 143 includes a complete/partial row repairindicator. Redundant memory cell location field 144 is used to store theaddress of rows in either the primary memory 120 or the auxiliary dataRAM 150, which are used to store data associated with the defectivememory cells in primary memory 120. Tag RAM 140 uses data bus 152 tocommunicate the contents of the redundant memory cell location field 144to the auxiliary data RAM 150.

TABLE 1 Complete/Partial Row Repair Redundant Row Repair Indicator RowLocator Indicator Description of the type (141) (142) (143) of rowrepair 0 0 0 No row repair required 1 1 0 Complete row/column repairperformed using memory cells located in the repair controller 1 1 1Partial row/column repair performed using memory cells located in therepair controller 1 0 0 Complete row/column repair performed usingmemory cells in the primary memory 1 0 1 Partial row/column repairperformed using memory cells in the primary memory

As shown in Table 1, in some embodiments, a bit value of “0” assigned tothe row repair indicator 141 represents that no row/column repair wouldbe needed for the memory cells corresponding to the row addresspresented to the tag RAM on row address 132. In some embodiments, a bitvalue of “1” assigned to the row repair indicator 141 represents that arow/column repair would be required for the memory cells correspondingto the incoming address.

In some embodiments, a bit value of “0” assigned to the redundant rowlocator 142 represents that row/column repair would be performed usingthe redundant rows/columns in redundant memory block 124 in primarymemory 120. On the other hand, a bit value of “1” assigned to theredundant memory cell locator 142 represents that a row/column repair isperformed using redundant rows/columns available in auxiliary data RAM150.

In some embodiments, a bit value of “0” assigned to the complete/partialrow repair indicator 143 represents that a complete row/column repairwould be performed for the memory cells corresponding to the rowaddress. In some embodiments, a bit value of “1” assigned to thecomplete/partial row repair indicator 143 represents that a partialrow/column repair would be performed for a subset of memory cellscorresponding to the related row/column address.

As shown in FIG. 1, selector 170 provides READ data to memory controller110 using data bus 111. Data bus 172 provides the data retrieved fromprimary memory 120 to the selector 170. Data bus 174 provides dataretrieved from auxiliary redundant data RAM 150 to the selector 170.Column address comparator 160 receives a string of bits from tag RAM 140via data bus 162 that indicates the column position of a defectivememory cell for a given row of memory cells identified by the tag RAM140. Column address comparator 160 compares the string of bits receivedfrom tag RAM 140 with the column address received on data bus 134 frommemory controller 110 and generates the control signal 176, whichinstructs selector 170 to select the READ data from either the primarymemory 120 or auxiliary redundant data RAM 150. In some embodiments,control signal 176 allows the selector 170 to provide READ data byselecting the data between data bus 172 and data bus 174 based oncontrol signal 176.

One of ordinary skill in the art will readily recognize that memorysystem 100 may include other parts, which are omitted from FIG. 1 tomore clearly focus on the various embodiments described herein.

FIG. 2 is a schematic representation of a system 200 for repairing aprimary memory using a repair controller, according to some embodimentsof the invention. System 200 includes the memory controller 110 coupledto a repair controller 230 and a primary memory 120. In someembodiments, the repair controller 230 includes a tag RAM 240, a columnaddress comparator 160 and a selector 170.

Table 2 shows an example of the different types of row repair tagsavailable for a particular row address received from memory controller110.

TABLE 2 Complete Row Partial Row Repair Indicator Repair Indicator (251,261, 271, 281) (252, 262, 272, 282) Description of Row Repair 0 0 Norepair required 1 0 Complete row repair per- formed using memory cellslocated in primary memory 0 1 Partial row repair per- formed from memorycells located in the repair controller

In some embodiments, tag RAM 240 includes groups of repair tags (250,260, 270, and 280). As shown in FIG. 2, one of the rows in group 270includes a complete row repair indicator field 271, a partial row repairindicator field 272, an address field 273, and offset field 274.

In some embodiments, tag RAM 240 is configured to provide redundantmemory cells using memory cells used to store memory addressesassociated with rows/columns that do not need any row/column repair.

In some embodiments, a bit value of “0” assigned to the complete rowrepair indicator field 271 represents that no complete row repair isrequired. On the other hand, a bit value of “1” assigned to the completerow repair indicator field 271 represents that a complete row repair isrequired and the repair is performed using memory cells from the primarymemory 120.

In some embodiments, a bit value of “0” assigned to the partial rowrepair indicator field 272 represents that no partial row repair is tobe performed. On the other hand, a bit value of “1” assigned to thepartial row repair indicator field 272 represents that a partial rowrepair is to be performed. The partial row repair is performed usingmemory cells in the tag RAM 240.

In some embodiments, address field 273 provides the location ofdefective memory cells within a row address provided by memorycontroller 110. In one example, an offset field 274 stores information(such as an offset to column repair data location) for a pointer 264 tolocate the memory cells within the tag RAM 240 that stores the data. Inone example, offset field 274 stores values to locate redundant memorycells in tag RAM 240 that can be used to replace defective memory cellsidentified by address field 273.

In one example, complete row repair indicator 261 indicates a completerow repair to be performed from the redundant rows in primary memory. Inone example, a redundant row address field 263 is used to create apointer 290 to locate the redundant row in primary memory 120.

FIG. 3 is a flow chart 300 of a method of repairing a primary memoryduring a READ operation using the system shown in FIG. 1, according tosome embodiments of the invention.

At block 310, method 300 includes receiving a row address and a columnaddress associated with primary memory 120. In some embodiments, atblock 310 method 300 includes having the memory controller 110 provide arow address associated with primary memory 120 to tag RAM 140 using link132 as shown in FIG. 1.

At block 320, method 300 includes determining if a row repair isrequired. In some embodiments, determining if a row repair is requiredincludes checking a repair tag field 141 of a repair tag 145 associatedwith the received row address. In an example, if the repair tag field141 bit has a “0” assigned to it, then the row address is determined tohave no defective memory cells in the row and as a result no repair isnecessary for that particular row. On the other hand, if the repair tagfield 141 has a “1” assigned to it, then the row address is determinedto have defective memory cells in it. Upon determining if a row repairis required at block 320, method 300 proceeds to block 330 if no repairis required, or proceeds to block 340 if a row repair is required.

At block 330, method 300 includes performing a READ operation fromstandard memory block 122 in primary memory 120. Method 300 terminatesafter the READ data operation is completed.

At block 340, method 300 includes determining if a partial row repair isrequired. In some embodiments, determining if a partial row repair isrequired includes checking a repair indicator 143 of a repair tag 145associated with the received row address. In an example, if the repairindicator 143 bit has a “0” assigned to it, then the row address isdetermined to require a complete row repair. On the other hand, if therepair indicator 143 has a “1” assigned to it, then the row address isdetermined to require a partial row repair. Upon determining the type ofrepair (complete repair versus partial repair) at block 340, method 300proceeds to block 350 if a complete repair is required. On the otherhand, if a partial row repair is required, method 300 proceeds to block355.

At block 350, method 300 includes performing a READ operation wherein arow of data is read from either the redundant block of memory cells inthe primary memory 120 or the auxiliary memory such as auxiliary dataRAM 150 as determined by the state of redundant row locator 142.

At block 355, method 300 includes determining if a column repair isrequired. In one example, determining if a column repair is requiredincludes comparing incoming column address 134 to bad column addressfield 161 to determine if a column repair is required. In an example, ifa column repair is required, then method 300 proceeds to block 360. Onthe other hand, if no column repair is required, then method 300proceeds to block 330.

At block 360, method 300 includes performing a READ operation usingpartial rows retrieved from auxiliary redundant data RAM 150. Uponperforming the partial row read operation, method 300 proceeds to block370.

At block 370, method 300 includes performing a READ operation for theremaining portion (apart from the partial row) of the row data from theprimary memory 120 that correspond to non-defective memory cells. Insome embodiments, the READ operation is optional for the remainingportion of the row data based on the size of the memory access and thesize of the partial repair.

FIG. 4 is a flow chart of a method 400 of repairing a primary memoryduring a WRITE operation using the system shown in FIG. 1, according tosome embodiments of the invention.

At block 410, method 400 includes receiving a row address and a columnaddress associated with primary memory 120. In some embodiments, atblock 410, method 400 includes having the memory controller 110 providea row address associated with primary memory 120 to tag RAM 140 usinglink 132 as shown in FIG. 1.

At block 420, method 400 includes determining if a row repair isrequired. In some embodiments, determining if a row repair is requiredincludes checking a repair tag field 141 of a repair tag 145 associatedwith the received row address. In an example, if the repair tag field141 bit has a “0” assigned to it, then the row address is determined tohave no defective memory cells in the row and as a result no repair isnecessary for that particular row. On the other hand, if the repair tagfield 141 has a “1” assigned to it, then the row address is determinedto have defective memory cells in it. Upon determining if a row repairis required at block 420, method 400 proceeds to block 430 if no repairis required, or proceeds to block 440 if a row repair is required.

At block 430, method 400 includes performing a WRITE operation tostandard memory block 122 in primary memory 120. Method 400 terminatesafter the WRITE data operation is completed.

At block 440, method 400 includes determining if a partial row repair isrequired. In some embodiments, determining if a partial row repair isrequired includes checking a repair indicator 143 of a repair tag 145associated with the received row address. In an example, if the repairindicator 143 bit has a “0” assigned to it, then the row address isdetermined as requiring a complete row repair. On the other hand, if therepair indicator 143 has a “1” assigned to it, then the row address isdetermined as requiring a partial row repair. Upon determining the typeof repair (complete repair versus partial repair) at block 440, method400 proceeds to block 450 if a complete repair is required. On the otherhand, if a partial row repair is required, method 400 proceeds to block455.

At block 450, method 400 includes performing a WRITE operation wherein arow data is written into either the redundant block of memory cells inthe primary memory 120 or the auxiliary memory such as auxiliary dataRAM 150 as determined by the state of redundant row locator 142.

At block 455, method 400 includes determining if a column repair isrequired. In one example, determining if a column repair is requiredincludes comparing incoming column address 134 to bad column addressfield 161 to determine if a column repair is required. In an example, ifa column repair is required, then method 400 proceeds to block 460. Onthe other hand, if no column repair is required, then method 400proceeds to block 430.

At block 460, method 400 includes performing a WRITE operation into anauxiliary data RAM 150. Upon performing the partial row WRITE operation,method 400 proceeds to block 470.

At block 470, method 400 includes performing a WRITE operation to theprimary memory 120 for the remaining portion (apart from the partialrow) that corresponds to non-defective memory cells of the row.

FIG. 5 is a flow chart of a method 500 of repairing a primary memoryduring a READ/WRITE operation using the system shown in FIG. 2,according to some embodiments of the invention.

At block 510, method 500 includes receiving a row address and a columnaddress from memory controller 110 during either a READ or WRITEoperation. Following block 510, method 500 proceeds to block 520.

At block 520, method 500 determines if a row repair is required. Forexample, if a bit value of “1” is present for complete repair indicator261 or 271, the method 500 proceeds to block 530 where the repair isperformed using the memory cells located in the primary memory 120. Onthe other hand, if a bit value “0” is present for complete row repairindicator 261 or 271, the method 500 proceeds to block 525.

At block 525, method 500 determines if a partial row repair is required.Foe example, if a bit value of “1” is present for partial repairindicator 262 or 272, the method 500 proceeds to block 540. On the otherhand, if a bit value “0” is present for partial repair indicator 262,then no repair is required and the method proceeds to block 570.

At block 530, method 500 performs a complete row repair using memorycells in primary memory 120. Method 500 terminates after the repairoperation is completed.

At block 540, method 500 compares the column address received on bus 134received from memory controller 110 with a bad column address field 161received from tag RAM 140 using bus 162. If there is no match betweenthe two addresses that are compared, the method 500 proceeds to block570. If there is a match upon comparison of the two addresses, thenmethod 500 proceeds to block 550.

At block 550, method 500 uses a pointer 264 to locate repair data storedin tag RAM 240. In an example, an offset field 274 is stored at the endof the repair tag, which includes a value that can be used to identifythe incremental position from the repair tag field to indicate thelocation where the data is located in the tag RAM 240. Upon identifyingthe location of the repair data in the tag RAM 240, method 500 proceedsto block 560.

At block 560, method 500 includes selecting data stored in the locationidentified by pointer 264 to perform memory repair. In one example, anoffset field 274 stores information (such as an offset to column repairdata location) for the pointer 264 to locate the memory cells within thetag RAM 240 that stores the data. In one example, offset field 274stores values to locate redundant memory cells in tag RAM 240 that canbe used to replace defective memory cells identified by address field273.

At block 570, method 500 selects data stored in a standard block ofprimary memory 120 to perform either a READ or WRITE function. Method500 terminates after a READ or WRITE function is performed in block 570.

The apparatus, systems, and methods disclosed herein can provide forincreased speed and throughput while accessing memory arrays in additionto achieving a higher density of memory arrays compared to conventionaldesigns. In some embodiments, as a result, the DRAM die size is alsoreduced.

The accompanying drawings that form a part hereof show, by way ofillustration and not of limitation, specific embodiments in which thesubject matter may be practiced. The embodiments illustrated aredescribed in sufficient detail to enable those skilled in the art topractice the teachings disclosed herein. Other embodiments may be usedand derived therefrom, such that structural and logical substitutionsand changes may be made without departing from the scope of thisdisclosure. This Detailed Description, therefore, is not to be taken ina limiting sense, and the scope of various embodiments is defined onlyby the appended claims and the full range of equivalents to which suchclaims are entitled.

Such embodiments of the inventive subject matter may be referred toherein, individually or collectively, by the term “invention” merely forconvenience and without intending to voluntarily limit the scope of thisapplication to any single invention or inventive concept, if more thanone is in fact disclosed. Thus, although specific embodiments have beenillustrated and described herein, any arrangement calculated to achievethe same purpose may be substituted for the specific embodiments shown.This disclosure is intended to cover any and all adaptations orvariations of various embodiments. Combinations of the above embodimentsand other embodiments not specifically described herein will be apparentto those of skill in the art upon reviewing the above description.

The Abstract of the Disclosure is provided to comply with 37 C.F.R.§1.72(b) requiring an abstract that will allow the reader to quicklyascertain the nature of the technical disclosure. It is submitted withthe understanding that it will not be used to interpret or limit thescope or meaning of the claims. In the foregoing Detailed Description,various features are grouped together in a single embodiment for thepurpose of streamlining the disclosure. This method of disclosure is notto be interpreted to require more features than are expressly recited ineach claim. Rather, inventive subject matter may be found in less thanall features of a single disclosed embodiment. Thus the following claimsare hereby incorporated into the Detailed Description, with each claimstanding on its own as a separate embodiment.

CONCLUSION

Methods, apparatus and systems provided herein include performing READ,WRITE functions into a memory including a standard block of memory cellsand a redundant block of memory cells, which is coupled to a repaircontroller. in at least one such embodiment, the repair controllerreceives a row address and a column address associated with the memoryand stores a first plurality of tag fields indicating a type ofrow/column repair to be performed for at least a portion of a row/columnof memory cells, and a second plurality of tag fields to indicate alocation of memory cells used to perform the row/column repair.

One or more embodiments provide an improved mechanism for repairingmemory devices. As the storage size of a memory device is fixed,redundant rows and columns are used to repair bad rows to achieve thespecified capacity. Providing redundancy maximizes the number of diethat can be repaired to meet the specified capacity and therebyincreasing yield. Increasing yield reduces costs of manufacturing thesememory devices. Furthermore, various embodiments described herein canalso improve the storage capacity of memory devices and, as a result,reduce the size of these memory devices.

What is claimed is:
 1. A method, comprising: receiving a row address anda column address; determining that an address of repair data is within aprimary memory or a tag random access memory (RAM) using a plurality offields; comparing the column address with an address from the tag RAM togenerate a control signal to instruct a selector to select data fromeither the primary memory or the tag RAM; selecting data stored in astandard block of the primary memory to perform one of a read or writeoperation, when there is no match between the column address and theaddress from the tag RAM; and using a pointer to locate the repair datastored in the tag RAM, when there is a match between the column addressand the address from the tag RAM, and selecting the repair data storedin a location identified by the pointer to perform a memory repair,wherein a field of the tag RAM is configured to store information tocreate the pointer to locate the repair data stored in the tag RAM. 2.The method of claim 1, further comprising determining a repair type ofthe memory repair for a row of the primary memory based on content ofthe tag RAM.
 3. The method of claim 2, further comprising identifying bythe tag RAM at least one defective column address in the row of theprimary memory, when the repair type is a partial row repair, based oncontent of the tag RAM.
 4. The method of claim 1, further comprisingcomparing a bad column address with a column address received from thememory controller.
 5. The method of claim 1, wherein a repair controlleris coupled to the primary memory, the repair controller operating toreceive an address associated with the primary memory.
 6. The method ofclaim 5, wherein the repair controller and the primary memory operatewithin a same integrated circuit package.
 7. The method of claim 5,wherein a memory controller is coupled to the repair controller and theprimary memory, the memory controller operating to provide the repaircontroller and the primary memory with the address associated with theprimary memory.
 8. The method of claim 5, wherein the repair controllerincludes the tag RAM.
 9. The method of claim 5, wherein the pointer islocated in the repair controller to indicate the address of the repairdata stored in the tag RAM to perform the repair.
 10. The method ofclaim 1, wherein the tag RAM operates to store data associated with adefective cell having the at least one defective column.
 11. The methodof claim 1, wherein the primary memory includes a dynamic RAM.
 12. Themethod of claim 1, wherein the primary memory includes a static RAM. 13.The method of claim 1, wherein the primary memory includes a flashmemory array.